package com.ruoyi.huoxingshi.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 短剧信息对象 hxs_dramas
 *
 * @author huoxingshi
 * @date 2025-06-25
 */
public class HxsDramas extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 短剧ID
     */
    private Long id;

    /**
     * 短剧标题
     */
    @Excel(name = "短剧标题")
    private String title;

    /**
     * 详细简介
     */
    @Excel(name = "详细简介")
    private String description;

    /**
     * 短剧图片
     */
    @Excel(name = "短剧图片")
    private String coverUrl;

    /**
     * 导演
     */
    @Excel(name = "导演")
    private String director;

    /**
     * 主演列表
     */
    @Excel(name = "主演列表")
    private String actors;

    /**
     * 分类ID
     */
    @Excel(name = "分类ID")
    private Long categoryId;

    /**
     * 总集数
     */
    @Excel(name = "总集数")
    private Long totalEpisodes;

    /**
     * 总时长（分钟）
     */
    @Excel(name = "总时长", readConverterExp = "分=钟")
    private Long duration;

    /**
     * 解锁全剧价格
     */
    @Excel(name = "解锁全剧价格")
    private BigDecimal price;

    /**
     * 是否仅会员观看
     */
    @Excel(name = "是否仅会员观看")
    private String isVipOnly;

    /**
     * 发布日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发布日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date releaseDate;

    /**
     * 播放量
     */
    @Excel(name = "播放量")
    private Long viewCount;

    /**
     * 短剧状态
     */
    @Excel(name = "短剧状态")
    private String status;

    @Excel(name = "短剧分类")
    private String category;

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    public void setCoverUrl(String coverUrl) {
        this.coverUrl = coverUrl;
    }

    public String getCoverUrl() {
        return coverUrl;
    }

    public void setDirector(String director) {
        this.director = director;
    }

    public String getDirector() {
        return director;
    }

    public void setActors(String actors) {
        this.actors = actors;
    }

    public String getActors() {
        return actors;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setTotalEpisodes(Long totalEpisodes) {
        this.totalEpisodes = totalEpisodes;
    }

    public Long getTotalEpisodes() {
        return totalEpisodes;
    }

    public void setDuration(Long duration) {
        this.duration = duration;
    }

    public Long getDuration() {
        return duration;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setIsVipOnly(String isVipOnly) {
        this.isVipOnly = isVipOnly;
    }

    public String getIsVipOnly() {
        return isVipOnly;
    }

    public void setReleaseDate(Date releaseDate) {
        this.releaseDate = releaseDate;
    }

    public Date getReleaseDate() {
        return releaseDate;
    }

    public void setViewCount(Long viewCount) {
        this.viewCount = viewCount;
    }

    public Long getViewCount() {
        return viewCount;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("title", getTitle())
                .append("description", getDescription())
                .append("coverUrl", getCoverUrl())
                .append("director", getDirector())
                .append("actors", getActors())
                .append("categoryId", getCategoryId())
                .append("totalEpisodes", getTotalEpisodes())
                .append("duration", getDuration())
                .append("price", getPrice())
                .append("isVipOnly", getIsVipOnly())
                .append("releaseDate", getReleaseDate())
                .append("viewCount", getViewCount())
                .append("status", getStatus())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
